#include"sort.h"
#include"Stack.h"
void test01() {
	int arr[] = { 9,8,7,6,5,4,3,2,1 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	BubbleSort(arr, sz);
	Print(arr, sz);
}
void test02() {
	int arr[] = { 9,8,7,6,5,4,3,2,1 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	InsertSort(arr, sz);
	Print(arr, sz);
}
void test03() {
	int arr[] = { 9,8,7,6,5,4,3,2,1 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	ShellSort(arr, sz);
	Print(arr, sz);
}
void test04() {
	int arr[] = { 9,8,7,6,5,4,3,2,1 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	ShellSort(arr, sz);
	Print(arr, sz);
}
void test05() {
	int arr[] = { 1,8,7,6,66,4,3,2,9 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	QuickSort(arr, 0, sz - 1);
	Print(arr, sz);
}
void test06() {
	Stack st;
	StInit(&st);
	StPush(&st, 1);
	StPush(&st, 1);
	StPush(&st, 1);
	StPush(&st, 1);
	StPush(&st, 2);
	printf("%d\n", StTop(&st));
	StPrint(st);
	StDestroy(&st);
}
void test07() {
	int arr[] = { 1,8,7,6,66,4,3,2,9 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	QuickSortNonR(arr, 0, sz - 1);
	Print(arr, sz);
}
void test08() {
	int arr[] = { 1,8,7,6,66,4,3,2,9 };
	int sz = sizeof(arr) / sizeof(arr[0]);
	MergeSort(arr,sz);
	Print(arr, sz);
}
void test09() {
	int arr[] = { 51,54,52,59,53,55,51,54,51 };
	//            51 51 51 52 53 54 54 55 59
	int sz = sizeof(arr) / sizeof(arr[0]);
	CountSort(arr, sz);
	Print(arr, sz);
}
void test10() {
	int arr[] = { 51,54,52,59,53,55,51,54,51 };
	//            51 51 51 52 53 54 54 55 59
	int sz = sizeof(arr) / sizeof(arr[0]);
	QuickSortThree(arr, 0, sz - 1);
	Print(arr, sz);
}
int main() {
	/*test01();
	test02();
	test03();
	test04();
	test05();
	test06();*/
	//test07();
	//test08();
	test09();
	test10();
	return 0;
}